Diagnosing Java Programs with Static Abstractions of Data Structures

نویسندگان

  • Rong Chen
  • Daniel Köb
  • Franz Wotawa
چکیده

Model-based software debugging helps users to find program errors and thus to reduce the overall costs for software development. In this paper, we extend our previous work to diagnose common data structure errors. The proposed logical program model derives from a collection of indexed object relations, which capture the underlying data structures at the abstraction level of objects. A case study suggests that the counterexample with the diagnoses can help the user to understand the nature of program errors and thus speed up error correction.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Shape Analysis and Cache Locality for Recursive Data Structures in Java

There is already a substantial amount of practical research into optimizing programs with static, sequential, array-based data structures. Numerical programs in particular tend to make heavy use of these data structures. However, not all numerical programs make heavy use of such structures, nor do many other programs we would like to be able to optimize. Another class of data structures which i...

متن کامل

Symbolic Execution with Abstract Subsumption Checking

We address the problem of error detection for programs that take recursive data structures and arrays as input. Previously we proposed a combination of symbolic execution and model checking for the analysis of such programs: we put a bound on the size of the program inputs and/or the search depth of the model checker to limit the search state space. Here we look beyond bounded model checking an...

متن کامل

Flow Java: Declarative Concurrency for Java

This thesis presents the design, implementation, and evaluation of Flow Java, a programming language for the implementation of concurrent programs. Flow Java adds powerful programming abstractions for automatic synchronization of concurrent programs to Java. The abstractions added are single assignment variables (logic variables) and futures (read-only views of logic variables). The added abstr...

متن کامل

Dynamic Shape and Data Structure Analysis in Java

Analysis of dynamic data structure usage is useful for both program understanding and for improving the accuracy of other program analyses. Static shape analysis techniques, however, suffer from reduced accuracy in complex situations. We have designed and implemented a dynamic shape analysis system that allows one to examine and analyze how Java programs build and modify data structures. Using ...

متن کامل

TIE: Principled Reverse Engineering of Types in Binary Programs

A recurring problem in security is reverse engineering binary code to recover high-level language data abstractions and types. High-level programming languages have data abstractions such as buffers, structures, and local variables that all help programmers and program analyses reason about programs in a scalable manner. During compilation, these abstractions are removed as code is translated d...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004